import request from '@/utils/request'

import axios from 'axios'

// 创建一个使用代理的axios实例
export const directAxios = axios.create({
  baseURL: '/ai-service', // 使用代理路径，避免跨域问题
  timeout: 10000,
  headers: {
    'Content-Type': 'application/json;charset=utf-8',
    'X-Requested-With': 'XMLHttpRequest'
  }
})

// 添加详细的请求拦截器
directAxios.interceptors.request.use(config => {
  console.log('=== 直接API请求开始 ===')
  console.log('请求配置:', config)
  console.log('请求URL:', config.baseURL + config.url)
  console.log('请求数据:', config.data)
  console.log('=== 直接API请求结束 ===')
  return config
})

// 添加详细的响应拦截器
directAxios.interceptors.response.use(response => {
  console.log('=== 直接API响应开始 ===')
  console.log('响应状态码:', response.status)
  console.log('响应数据:', response.data)
  console.log('=== 直接API响应结束 ===')
  return response
}, error => {
  console.error('=== 直接API请求错误 ===')
  console.error('错误对象:', error)
  if (error.response) {
    console.error('错误状态码:', error.response.status)
    console.error('错误响应数据:', error.response.data)
  } else if (error.request) {
    console.error('没有收到响应:', error.request)
  } else {
    console.error('请求配置错误:', error.message)
  }
  console.error('=== 直接API错误结束 ===')
  // 抛出错误，让上层处理函数捕获
  throw error
})

// 发送AI问答请求
export function askAI(question) {
  // 增强的调试信息
  console.log('环境配置:', {
    VUE_APP_BASE_API: process.env.VUE_APP_BASE_API,
    NODE_ENV: process.env.NODE_ENV,
    '推荐测试工具': '请打开 http://localhost:81/api-test.html 查看详细API测试结果'
  })
  
  // 构造完整的请求数据
  const requestData = {
    question: question,
    timestamp: Date.now(),
    version: '1.0.0'
  }
  
  // 尝试直接连接后端服务器（绕过前端代理）
  return directAxios({
    url: '/ai/api/chat', // 尝试不同的API路径
    method: 'post',
    data: requestData,
    headers: {
      'Content-Type': 'application/json;charset=utf-8',
      'X-API-Request-Id': 'req-' + Date.now(),
      'X-User-Agent': 'AI-Chat-Client/1.0'
    }
  }).catch(error => {
    console.error('所有请求方式都失败了:', error)
    // 返回一个模拟的错误响应，以便前端能够正常显示
    return {
      success: false,
      errorMsg: 'AI服务暂时不可用，请稍后再试。建议检查后端服务是否正常运行，并使用我们提供的测试工具检查正确的API路径。',
      code: 500
    }
  })
}

// 提供一个快速测试方法
export function quickTestAPI() {
  console.log('运行API快速测试...')
  const testQuestions = ['测试问题1', '测试问题2']
  
  testQuestions.forEach((question, index) => {
    setTimeout(() => {
      console.log(`\n测试 ${index + 1}:`, question)
      askAI(question).then(response => {
        console.log('测试结果:', response)
      }).catch(error => {
        console.error('测试错误:', error)
      })
    }, index * 2000)
  })
}